//************************************************************************
/// <copyrigth>2024-2025 Corporation.All Rights Reserved</copyrigth>
/// <author>tangyingzhong</author>
/// <contact>tangyz114987@outlook.com</contact>
/// <version>v1.0.0</version>
/// <describe>
/// Cross-Platform stop watch
///</describe>
/// <date>2024/3/8</date>
///***********************************************************************
#ifndef STOPWATHC_H
#define STOPWATHC_H

#include "ModuleLoader/ModuleConfig.h"

namespace SystemTool
{
    class CLASS_ITEM StopWatch
    {
    public:
        // Construct the stop watch
        StopWatch();

        // Destruct the stop watch
        ~StopWatch();

    public:
        // Start the stop watch
        void Start();

        // Stop the stop watch
        void Stop();

        // Restart the stop watch
        void Restart();

        // Get elaspsed time
        long long GetElaspsed_Us();

        // Get elaspsed time
        long long GetElaspsed_Ms();

        // Get elaspsed time
        long long GetElaspsed_S();

    private:
        // Poco stop watch
        void* m_pStopWatch;
    };
}

#endif // STOPWATHC_H
